04. 解决方案:LEFT 与 RIGHT

LEFT & RIGHT 解决方案

  1. SELECT RIGHT(website, 3) AS domain, COUNT(*) num_companies
    FROM accounts
    GROUP BY 1
    ORDER BY 2 DESC;
  2. 2.
SELECT LEFT(UPPER(name), 1) AS first_letter, COUNT(*) num_companies
FROM accounts
GROUP BY 1
ORDER BY 2 DESC;
  1. SELECT SUM(num) nums, SUM(letter) letters
    FROM (SELECT name, CASE WHEN LEFT(UPPER(name), 1) IN ('0','1','2','3','4','5','6','7','8','9') 
                              THEN 1 ELSE 0 END AS num, 
                CASE WHEN LEFT(UPPER(name), 1) IN ('0','1','2','3','4','5','6','7','8','9') 
                              THEN 0 ELSE 1 END AS letter
             FROM accounts) t1;

有 350 个公司名称以字母开头,1 个公司以数字开头。因此有 350/351 的公司名称以字母开头,即百分比是 99.7%。

  1. SELECT SUM(vowels) vowels, SUM(other) other
    FROM (SELECT name, CASE WHEN LEFT(UPPER(name), 1) IN ('A','E','I','O','U') 
                               THEN 1 ELSE 0 END AS vowels, 
                 CASE WHEN LEFT(UPPER(name), 1) IN ('A','E','I','O','U') 
                              THEN 0 ELSE 1 END AS other
                FROM accounts) t1;

有 80 的公司名称以元音开头,271 的公司以其他音节开头。元音的比例是 80/351,或 22.8%。因此,有 77.2% 的公司名称没有以元音开头。